package org.example.printer;

public class TextPaper implements Paper{
    private int charPerLine = 16; //每行字符数
    private int linePerPage = 5; //每行行数
    private String context = ""; //纸张中的类容
    private int posX = 0;  //当前横向位置，从0到charPerLine-1
    private int posY = 0;  //当前行数，从0到linePerPage-1
    private int posP = 0; //当前页数
    @Override
    public void putInChar(char c) {
        context += c;
        ++posX;
        //判断是否换行
        if(posX == charPerLine){
            context += Paper.newline;
            posX = 0;
            ++posY;
        }
    }

    @Override
    public String getContent() {
        String ret = this.context;
        //补齐本页空行
        if(!(posX == 0 && posY == 0)){
            int count = linePerPage - posY;
            for (int i=0;i<count;i++){
                ret +=Paper.newline;
            }
            ret +="==第"+posP+"页==";
        }
        return ret;
    }
    //使用set方法注入每行字符数
    public void setCharPerLine(int charPerLine) {
        this.charPerLine = charPerLine;
    }
    //使用set方法注入每页行数
    public void setLinePerPage(int linePerPage) {
        this.linePerPage = linePerPage;
    }
}
